package com.gs.common.util

import android.app.AlertDialog
import android.app.Dialog
import android.content.Context
import android.graphics.Bitmap
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.view.Window
import android.widget.ImageView
import com.gs.common.R

object DialogUtil {

    const val CONFIRM_TO_DO = 200
    const val CANCEL_TO_DO = 201


    fun createCommonAlertDialog(context: Context, operation: String, itemName: String, extra: String = "",block: (Int) -> Unit): AlertDialog {
        // 创建对话框
        val alertDialogBuilder = AlertDialog.Builder(context)
        alertDialogBuilder.apply {
            setTitle("确认操作")
            setMessage("确定要${operation}${itemName}吗？${extra}")
            // 添加确定按钮
            setPositiveButton("确定") { dialog, _ ->
                // 在点击确定按钮时执行的操作
                dialog.dismiss() // 关闭对话框
                // 在这里添加你的逻辑代码
                block.invoke(CONFIRM_TO_DO)
            }
            // 添加取消按钮
            setNegativeButton("取消") { dialog, _ ->
                // 在点击取消按钮时执行的操作
                dialog.dismiss() // 关闭对话框
                // 取消操作，不执行任何逻辑
                block.invoke(CANCEL_TO_DO)
            }
        }
        return alertDialogBuilder.create()
    }

    fun createLoadingDialog(context: Context) : Dialog {
        val loadingDialog = Dialog(context)
        loadingDialog.requestWindowFeature(Window.FEATURE_NO_TITLE)
        loadingDialog.setContentView(R.layout.loading_dialog_layout)
        // 完全透明
        loadingDialog.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
        loadingDialog.setCancelable(false)
        return loadingDialog
    }

    fun createQRCodeDialog(context: Context, qrCodeBitmap: Bitmap): Dialog {
        val dialog = Dialog(context)
        dialog.setContentView(R.layout.qr_code_layout)

        val qrCodeImageView = dialog.findViewById<ImageView>(R.id.qr_code_image_view)
        qrCodeImageView.setImageBitmap(qrCodeBitmap)

        return dialog
    }
}